package main

import (
	"github.com/kataras/iris/v12"
	"iris_blog/config"
	"iris_blog/router"
)

func main()  {
	// 构建app
	app  :=newApp()
	//项目设置
	configation(app)
	// 路由配置
	router.NewRoter(app)
	// 项目监听启动  加上配置
	config := config.InitConfig()
	addr := ":" + config.Port
	app.Listen(addr,iris.WithConfiguration(iris.TOML("./config/iris.tml")))
}
//构建App
func newApp() *iris.Application {
	app := iris.New()

	//设置日志级别  开发阶段为debug
	app.Logger().SetLevel("debug")

	//注册静态资源
	//app.StaticWeb("/static", "./static")
	app.HandleDir("/static", "./static")
	app.HandleDir("/manage/static", "./static")
	//app.StaticWeb("/manage/static", "./static")

	//注册视图文件
	app.RegisterView(iris.HTML("./static", ".html"))
	// 默认get / 请求渲染 index.html
	app.Get("/", func(i iris.Context) {
		i.View("index.html")
	})

	return app
}

//项目设置
func configation(app *iris.Application) {

	//配置 字符编码
	app.Configure(iris.WithConfiguration(iris.Configuration{
		Charset: "UTF-8",
	}))

	//错误配置
	//未发现错误
	app.OnErrorCode(iris.StatusNotFound, func(context iris.Context) {
		context.JSON(iris.Map{
			"errmsg": iris.StatusNotFound, // 404
			"msg":    "你访问的页面404了,页面不存在",
			"data":   iris.Map{},
		})
	})

	app.OnErrorCode(iris.StatusInternalServerError, func(context iris.Context) {
		context.JSON(iris.Map{
			"errmsg": iris.StatusInternalServerError, // 500
			"msg":    "服务端错误,请联系管理员",
			"data":   iris.Map{},
		})
	})
}